
export class network {
    
    app: cloudbase.app.App = null;
    
    _init() {
        if(this.app) {
           return; 
        }
        this.app = cc.cloud && cc.cloud.initialize();
        let auth = this.app.auth({persistence: 'local'});
        auth.anonymousAuthProvider().signIn().then(res => {
            // 需要先做授权才能正常调用。使用匿名登陆方式访问云开发资源
            // 请到腾讯云后台 -> 云开发 -> 选择当前环境 -> 环境设置/登录授权中，确认已经启用匿名登录
            // 匿名登录有一定限制，后期请更换为自定义登录等其他方式。
            cc.log("云函数初始化成功");
        });
    }
    _callCloud(functionName: string, data: { action: string, params: object}, cb: Function) {
        if(!this.app) {
            this._init();
            return;
        }
        this.app.callFunction({
            // 云函数名称，要与上传的函数名一致
            name: functionName,
            // 传给云函数的参数
            data: data
        }).then(res => {
            cc.log('云函数的请求回调');
            cc.log(res.result);
            cb(res.result);
        }).catch(
            console.error
        );
    }
}